package com.soft.servlet;

import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;

import java.io.IOException;
@WebServlet("/LoginServlet") //servlet的访问地址映射url后面的部分
public class LoginServlet extends HttpServlet {
    //父类里面提供了很多方法，service方法是一个核心方法，它用来接收访问该servlet的
    //请求，它根据请求方式get还是post去调用doGet方法或者doPost方法进行响应
    //这两个方法也是父类提供，我们只需要重写他们就可以

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //1 接收请求参数,根据请求参数名获取请求参数值
        String username = req.getParameter("username");
        String pwd = req.getParameter("pwd");
        //2 逻辑处理
        if("admin".equals(username) && "123456".equals(pwd)){
            // 登录成功，跳转到成功页面
            //3 响应(跳转jsp页面等),这种跳转方式叫做响应重定向
            resp.sendRedirect("Success.jsp");

        }else{
            //如果登录失败，跳回到Login.jsp页面，并给它返回失败原因
            //这种情况的跳转，都使用请求转发，为什么？
            //因为我可以通过请求属性(也叫范围)存数据，然后转发会jsp页面
            req.setAttribute("msg","用户名或密码错误！");
            //请求转发
            req.getRequestDispatcher("Login.jsp").forward(req,resp);
        }

    }
}
